package com.dilidili.mapper;

import com.dilidili.esentity.VideoPojo;
import com.domain.Video;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;

import java.util.List;
import java.util.Map;

/**
 * 【请填写功能名称】Mapper接口
 * 
 * @author ruoyi
 * @date 2022-03-31
 */
public interface VideoMapper 
{
    /**
     * 查询【请填写功能名称】
     * 
     * @param videoId 【请填写功能名称】主键
     * @return 【请填写功能名称】
     */
    public Video selectVideoByVideoId(Long videoId);

    /**
     * 查询【请填写功能名称】列表
     * 
     * @param video 【请填写功能名称】
     * @return 【请填写功能名称】集合
     */
    public List<Video> selectVideoList(Video video);

    /**
     * 新增【请填写功能名称】
     *
     * @param video 【请填写功能名称】
     * @return 结果
     */
    public int insertVideo(Video video);

    /**
     * 修改【请填写功能名称】
     * 
     * @param video 【请填写功能名称】
     * @return 结果
     */
    public int updateVideo(Video video);

    /**
     * 删除【请填写功能名称】
     * 
     * @param videoId 【请填写功能名称】主键
     * @return 结果
     */
    public int deleteVideoByVideoId(Long videoId);

    /**
     * 批量删除【请填写功能名称】
     * 
     * @param videoIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteVideoByVideoIds(Long[] videoIds);
    List<Map> animatedRandomVideo(@Param("smallzoneId") Long smallzoneId);
    List<Map> animatedRandomVideoFour();

    List<VideoPojo> animatedRandomVideoAll();


    List<Map> animatedRandomVideoSix();
    List<Map> animatedRandomVideoLeaderboard(@Param("smallzoneId") Long smallzoneId);
    Video animatedRandomVideoById(@Param("videoId") Long videoId);

    @Update("update video set video_isreprint=#{videoIsreprint},video_online=#{videoOnline} where video_id=#{videoId}")
    void updateCount(Video video);
    @Update("update video set video_cover='' where video_id=#{videoId}")
    void updateImg(Integer videoId);
    //投稿中心
    List<Map> Submission(@Param("userId")Integer userId,@Param("bigzoneId")Integer bigzoneId,@Param("videoState")Integer videoState);

    List<Map> byUserId(@Param("userId")Integer userId);

    VideoPojo animatedRandomVideoId(Long videoId);
    List<Video> queryByUserId(@Param("userId") Long userId);

    List<Map> manageReviews(@Param("videoTitle") String videoTitle,@Param("userId") Integer userId);

    List<Video> queryByUserIdContribute(Long userId);

    @Update("update video set video_state=-1 where video_id=#{videoId}")
    void Tombstone(@Param("videoId") Long videoId);

    Integer delVideoOnline(Integer videoid);

    Map getVideoBarrageCount(Integer videoid);

    List<Map> getVideoBarrageList(Integer videoid);

    /**
     * 相关推荐 随即推荐十条视频给用户
     * @return
     */
    List<Video> randomVideo();

    Long easyNum(@Param("userId") Long userId);
}
